
from selenium import webdriver
import time

from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")

# id 定位
# 通过百度页面的 chrome 控制台检查元素可以得知,输入框对应的 id = "kw",点击按钮对应的 id = "su"
# 定位到元素后,就可以 send_keys() 输入指定文本,click() 触发点击事件
# driver.find_element_by_id("kw").send_keys("零之使魔")
# driver.find_element_by_id("su").click()

# driver.find_element(By.ID,"kw").send_keys("零之使魔")
# driver.find_element(By.ID,"su").click()

# name 定位
# 使用 name 进行定位元素,点击按钮无 name ,所以使用 id 进行定位
# driver.find_element_by_name("wd").send_keys("零之使魔")
# driver.find_element_by_id("su").click()

# driver.find_element(By.NAME,"wd").send_keys("零之使魔")
# driver.find_element(By.ID,"su").click()

# tag name
# 使用 tag name 来定位,标签名定位,但使用场合十分有限,
# 除非你能确定该标签全局唯一,否则无法进行定位
# driver.find_element_by_tag_name("input")
# # 非弃用方法
# driver.find_element(By.TAG_NAME,"input")

# class name 定位
# 需要注意的是,class 标签并不一定唯一,或者说通常会有多组标签的 class 属性相同
# 所以使用 class name 进行定位的时候也是需要注意是否全局唯一
# driver.find_element_by_class_name("s_ipt").send_keys("零之使魔")
# driver.find_element_by_id("su").click()
# 非弃用方法
# driver.find_element(By.CLASS_NAME,"s_ipt").send_keys("零之使魔")
# driver.find_element(By.ID,"su").click()

#  link text 定位
# 通过连接内容,来进行定位
# driver.find_element_by_link_text("hao123").click()
# 非弃用方法
# driver.find_element(By.LINK_TEXT,"hao123").click()

# 通过 CSS 进行元素定位
# driver.find_element_by_css_selector("#kw").send_keys("零之使魔")
# driver.find_element_by_css_selector("#su").click()
# 非弃用方法
# driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("零之使魔")
# driver.find_element(By.CSS_SELECTOR,"#su").click()

# 使用 XPath 定位
# XPath 一定是全局唯一的
driver.find_element_by_xpath("//*[@id='kw']").send_keys("零之使魔")
driver.find_element_by_xpath("//*[@id='su']").click()
# 非弃用方法
# driver.find_element(By.XPATH,"//*[@id='kw']").send_keys("零之使魔")
# driver.find_element(By.XPATH,"//*[@id='su']").click()


time.sleep(4)
driver.quit()